<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--    <script src="04.js"></script>-->
<script>
    // "use strict"; 严格模式
    // 练习：弹出一个prompt()。输入自己的名字，并且使用log和alert以及write分别输出到相应位置上
    // console.log(prompt("请输入自己的名字"));
    // alert(prompt("请输入自己的名字"));
    // document.write(prompt("请输入自己的名字"));
    // 输入姓名的框只能弹出一次
    // 需要使用变量来记住输入名字
    /*  变量如何定义
            ES5
                var 变量名 [ = 初始值]; 此处[]表示可选
                    例如：var name;或var name = "duan";
            ES6
                let 变量名 [ = 初始值]; 此处[]表示可选
                    例如：let name;或var name = "duan";
            var定义的变量存在几个问题，然后let都解决了
     */
    // 使用一个变量来记住prompt函数的返回值
    // var name = prompt("请输入自己的名字");
    // let name = prompt("请输入自己的名字");
    // console.log(name);
    // alert(name);
    // document.write(name);

    // console.log("nadfdme");
    // alert("nadfdme");

    // 定义一个变量保存年龄
    // var age;
    // var nianlin;
    // var aaa;
    // 定义一个变量保存学校名称
    // var name1;
    // 不能使用关键字或保留字
    var var1;
    // 常量在使用之前必须赋值，第一次赋值叫做初始化
    const c1 = 10;
    // 使用变量或常量
    console.log(c1);
    console.log(var1); // undefined
    //    在JavaScript中，所有的变量没有被赋值，则为undefined
    var a, b, c = 3;//在JavaScript中没需要强制使用;结束
    let g = 10;
    // let g = 11; //重复定义
</script>

<script src="04.js"></script>
<script>
    // var f;
    console.log("c:", c)
    {
        var d = 5;
        let e = 6;
    }
    // var定义的变量没有块级作用域
    console.log("d:", d);
    // 报错会中断程序运行
    // console.log("e:", e);

    // console.log("f:", f);
    // var f = 7;
    // f = 7;
    console.log("window.c", window.c);
    console.log("window.g", window.g);
    var a = 1;
    console.log("a", a);
</script>
</body>
</html>